import _ from 'lodash'

//过滤导航菜单( 根据用户的权限,过滤出用户有权限访问的菜单 )
//参数一: menulist 完整的导航菜单  例如: [{key:'/index/home',icon:<HomeOutlined />,label:'首页'}]
//参数二: menulist 用户的权限  , 例如: ['1','2','3']
export function filterMenu( menulist:any,checkedKeys:any ){
    
    if( checkedKeys.length ){ //非超级管理员(admin)

        //对完整的导航菜单做一次深拷贝
        var newmenulist = _.cloneDeep(menulist);
        
        return newmenulist.filter((menu:any)=>{
            if( checkedKeys.includes(menu.key) ){ //有访问该菜单项的权限
                return true;
            }else if( menu.children ){ //没有访问该菜单项的权限, 但是存在子菜单
                //过滤子菜单
                menu.children = menu.children.filter((submenu:any)=>{
                    if( checkedKeys.includes(submenu.key) ){
                        return true;
                    }else{
                        return false;
                    }
                })

                //如果当前菜单 存在有权限访问的子菜单, 则保留当前菜单 , 否则不保留
                if( menu.children.length ){
                    return true;
                }else{ 
                    return false;
                }
            }
        })
    }else{ //超级管理员(admin)
        return menulist;
    }
}